package com.jackie.easyble.ui.activities

import android.content.Intent
import android.os.Bundle
import android.view.View
import com.sscl.easyble.BleManager
import com.jackie.easyble.R
import com.jackie.easyble.databinding.ActivityMainBinding
import com.sscl.baselibrary.activity.BaseDataBindingAppCompatActivity
import com.sscl.baselibrary.utils.ToastUtil

class MainActivity : BaseDataBindingAppCompatActivity<ActivityMainBinding>() {

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     *
     * 属性声明
     *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

    /**
     * 点击时间
     */
    private val onClickListener = View.OnClickListener {
        when (it) {
            binding.searchAndConnectBtn -> {
                if (!BleManager.supportBluetooth()) {
                    ToastUtil.toastLong(this@MainActivity, "设备不支持蓝牙")
                    return@OnClickListener
                }
                if (!BleManager.supportBluetoothLe()) {
                    ToastUtil.toastLong(this@MainActivity, "设备不支持蓝牙BLE")
                    return@OnClickListener
                }
                if (!BleManager.isBlueEnable()) {
                    BleManager.enableBluetooth()
                    return@OnClickListener
                }
                startActivity(Intent(this, SearchAndConnectActivity::class.java))
            }

            binding.sendBroadcastBtn -> {
                if (!BleManager.supportBluetooth()) {
                    ToastUtil.toastLong(this@MainActivity, "设备不支持蓝牙")
                    return@OnClickListener
                }
                if (!BleManager.supportBluetoothLe()) {
                    ToastUtil.toastLong(this@MainActivity, "设备不支持蓝牙BLE")
                    return@OnClickListener
                }
                if (!BleManager.isBlueEnable()) {
                    BleManager.enableBluetooth()
                    return@OnClickListener
                }
                startActivity(Intent(this, SendBroadcastActivity::class.java))
            }
        }
    }

    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     *
     * 实现方法
     *
     * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

    /**
     * 设置布局
     */
    override fun setLayout(): Int {
        return R.layout.activity_main
    }

    /**
     * 标题栏的返回按钮被按下的时候回调此方法
     */
    override fun titleBackClicked(): Boolean {
        return false
    }

    /**
     * 在设置布局之前需要进行的操作
     */
    override fun doBeforeSetLayout() {
    }

    /**
     * 设置DataBinding
     * 可在此处设置binding的viewModel或观察者等操作
     */
    override fun setBinding() {

    }

    /**
     * 在设置布局之后，进行其他操作之前，所需要初始化的数据
     */
    override fun doBeforeInitOthers() {
        hideTitleBackButton()
        setTitleText(R.string.app_name)
    }

    /**
     * 初始化控件数据
     */
    override fun initViewData(savedInstanceState: Bundle?) {

    }

    /**
     * 初始化其他数据
     */
    override fun initOtherData() {

    }

    /**
     * 初始化事件
     */
    override fun initEvents() {
        binding.searchAndConnectBtn.setOnClickListener(onClickListener)
        binding.sendBroadcastBtn.setOnClickListener(onClickListener)
    }

    /**
     * 在最后进行的操作
     */
    override fun doAfterAll() {

    }
}